1
堆分配集合的基础
AI034Lesson 8
00:00

成长的架构

Rust 的集合,例如 Vec<T>String,并非原始类型;它们是位于 std 模块中的库定义结构。这一基础决定了 Rust 如何通过模块系统组织数据,并通过 RAII(资源获取即初始化)机制管理内存。虽然简单类型存储在栈上,但集合使用 堆存储 实现动态增长,这意味着其内存必须通过 Drop 特性进行显式管理。

模块解析与可见性

Rust 编译器从项目根目录(src/lib.rssrc/main.rs)开始映射模块树。像 mod front_of_house; 这样的声明会触发编译器查找 src/front_of_house.rssrc/front_of_house/mod.rs。使用 pub 修饰符和重新导出(pub use)允许封装的堆分配数据通过符合惯例的路径安全地进行接口调用。

文件解析树src/lib.rssrc/front_of_house.rs– hosting.rspub use crate::front_of_house;let list = Vec::new();🦀?陷阱:mod.rs 与 name.rs 冲突触发编译错误(第 183 页)

一旦模块的作用域结束, Drop 实现便会自动回收堆内存:$$Memory_{reclaimed} = \sum Drop(Elements)$$。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>